# -*- coding: utf-8 -*-
# @File  : schedule模块.py
# @Author: zbh
# @Date  : 2025/2/18_10:07

'''
schedule 模块是 Python 标准库中的一个第三方模块，它提供了一种简单的方式来创建和管理定时任务。
这个模块允许你定义任务的执行时间和频率，并在指定的时间点执行这些任务。
可以帮助开发者方便地安排任务在特定时间或者按照一定的时间间隔重复执行；
'''

'''
基本使用流程
1、导入 schedule 模块：使用 import schedule 导入 schedule 模块。
2、定义任务函数：编写要执行的任务函数，可以是任何 Python 代码。
3、创建调度器对象：使用 schedule.every() 方法创建一个调度器对象，
这个方法返回一个 schedule.Every 对象，用于设置任务的执行频率。
4、设置任务执行频率：使用调度器对象的方法（如 every().minutes、every().hours、every().days 等）
设置任务的执行频率，例如 every(5).minutes 表示每隔 5 分钟执行一次任务。
5、设置任务执行时间：使用调度器对象的方法（如 at()、during() 等）设置任务的执行时间，
例如 at("10:30") 表示在每天的 10:30 执行任务。
6、运行调度器：使用 schedule.run_pending() 方法运行调度器，
它会检查是否有任务需要执行，并在指定的时间点执行这些任务。

阻塞问题：schedule 是单线程的，任务执行时会阻塞后续任务的调度，因此如果任务执行时间过长，可能会影响其他任务的执行时间。
时间精度：由于使用 time.sleep() 进行时间控制，任务执行的时间精度可能会受到系统负载等因素的影响。
'''

import schedule
import time
import os
from test_python_basics import denglu
import pyautogui


# 定义要执行的任务
def print_time():
    print("第一个程序，当前时间：{}".format(time.strftime("%Y-%m-%d %H:%M:%S",time.localtime())))

def screen():
    print("第二个程序，当前时间：{}".format(time.strftime("%Y-%m-%d %H:%M:%S",time.localtime())))
    pyautogui.screenshot('screenshot.png')
    print("截图成功")


# 使用 every() 和 do() 方法可以安排任务每隔固定的时间间隔执行。
schedule.every(1).seconds.do(print_time)   # 每隔1秒执行一次print_time函数
# 使用 at() 和 do() 方法可以安排任务在特定的时间点执行。
# schedule.every().day.at("12:00").do(screen)  # 每天的10:30执行一次print_time函数
# schedule.every().tuesday.do(print_time) # 每周二执行任务
# schedule.every(3).minutes.do(job, name="Alice") # 还能传递参数

l=schedule.every(1).seconds.do(denglu.login)
# 取消任务
schedule.cancel_job(l)
# schedule.run_pending()



while True:
    schedule.run_pending()  # 使用 run_pending() 方法可以运行调度器，它会检查是否有任务需要执行，并在指定的时间点
    time.sleep(1)









